package ali;

import java.util.ArrayList;
import java.util.List;

public class Solution_19 {


	public boolean isPalindrome(ListNode head) {

		// 1、将链表的值复制到数组中
		List<Integer> list = new ArrayList<>();
		while (head != null) {
			list.add(head.val);
			head = head.next;
		}

		// 2、使用双指针判断是否回文
		int p1 = 0; //指向第一个元素
		int p2 = list.size() - 1; //指向最后一个元素
		while (p1 < p2) {
			if (!list.get(p1).equals(list.get(p2))) { //只要不相等，就不是回文
				return false;
			}
			p1++;
			p2--;
		}

		return true;

	}
	
	  public class ListNode {
      int val;
      ListNode next;
      ListNode() {}
      ListNode(int val) { this.val = val; }
      ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  }

}